Computer-readable storage medium, information processing apparatus, information processing system, and information processing method

ABSTRACT

During a period from a time when an input coordinate is interrupted to a time when an interruption compensation period, which is set on the basis of a moving speed of the input coordinate, elapses, an example information processing apparatus determines that an operator continues an input operation, and performs coordinate complementation. Specifically, as the moving speed of the input coordinate increases, the interruption compensation period increases. Then, when the interruption compensation period elapses, the information processing apparatus determines that the operator has ended the input operation.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2011-272451, filed onDec. 13, 2011, is incorporated herein by reference.

FIELD

The technology disclosed herein relates to a computer-readable storagemedium, an information processing apparatus, an information processingsystem, and an information processing method, and particularly relatesto a computer-readable storage medium, an information processingapparatus, an information processing system, and an informationprocessing method for processing input data outputted from an inputdevice.

BACKGROUND AND SUMMARY

Conventionally, there is technology to compensate for interruption ofcoordinate data outputted from a coordinate input device such as a touchpanel. For example, there is conventional technology in which when atouch-off time is shorter than a predetermined time, it is determinedthat a contact state continues.

However, in the above conventional technology, whether or not a contactstate continues is determined by whether or not a touch-off time isshorter than a predetermined time (a fixed time). Thus, an erroneousdetermination is often made depending on a way in which an inputoperation is performed by an operator.

It is a feature of the technology disclosed herein to provide acomputer-readable storage medium, an information processing apparatus,an information processing system, and an information processing methodwhich can appropriately process input data outputted from apredetermined input device.

The feature described above is attained by, for example, the followingconfiguration examples.

A first configuration example is a computer-readable storage mediumhaving stored therein an information processing program for processinginput data outputted from a predetermined input device. The informationprocessing program causes a computer to operate as: an interruptioncompensation period setter configured to set an interruptioncompensation period on the basis of a change amount of the input data;and an interruption compensator configured to determine that inputcontinues and correct the input data, during a period from a time whenoutput of the input data from the input device is interrupted to a timewhen the interruption compensation period elapses.

The “input device” may be any device which outputs input datacorresponding to an input operation of the operator, and is a touchpanel as an example. The “input device” may be any device which outputsinput data corresponding to an input operation of the operator, and is atouch panel as an example. “To determine that input continues andcorrect the input data” may be to complement input data for a periodwhen the output of the input data from the input device is interrupted,or may be to set information indicating an input state, to an inputpresence state.

The information processing program can be stored in anycomputer-readable storage medium (e.g., a flexible disc, a hard disk, anoptical disc, a magneto-optical disc, a CD-ROM, a CD-R, a magnetic tape,a semiconductor memory card, a ROM, a RAM, etc.).

The interruption compensation period which is set by the interruptioncompensation period setter may increase as a change amount of the inputdata immediately before the output of the input data from the inputdevice is interrupted increases.

Further, the information processing program may further cause thecomputer to operate as a change speed calculator configured to calculatea change speed of the input data. The interruption compensation periodsetter may set the interruption compensation period on the basis of thechange speed of the input data calculated by the change speedcalculator.

The change speed calculator may calculate the change speed of the inputdata on the basis of at least a difference between latest input data andinput data immediately previous to the latest input data.

Further, the predetermined input device may be a coordinate inputdevice, and the input data may be input coordinate data indicating acontact position with respect to an operation surface of the coordinateinput device. During a period from a time when the contact positionindicated by the input coordinate data is interrupted to a time when theinterruption compensation period elapses, the interruption compensatormay determine that contact continues, and may correct the inputcoordinate data.

Further, the information processing program may further cause thecomputer to operate as a following value calculator configured tocalculate a following value which follows a target value which is set onthe basis of the input data. When the output of the input data isinterrupted, the interruption compensator may complement input data fora period when the output of the input data is interrupted, by using thefollowing value.

The “target value which is set on the basis of the input data” may be aninput value or another value (an allowance coordinate described later)updated in accordance with an input value. The “following value” is, forexample, a value which is controlled so as to gradually approach thetarget value even when the target value stops.

Further, the information processing program may further cause thecomputer to operate as a following coordinate calculator configured tocalculate a following coordinate which follows a target coordinate whichis set on the basis of the input data. When the contact positionindicated by the input coordinate data is interrupted, the interruptioncompensator may complement a contact position for a period when thecontact position indicated by the input coordinate data is interrupted,on the basis of an interval of the contact position indicated by theinput coordinate data and a moving direction of the followingcoordinate.

Further, the following value calculator may calculate the followingvalue such that the following value follows the target value at apredetermined rate.

The “predetermined rate” may be a constant or may be a variable whichchanges in response to a situation, such as a following rate describedlater.

Further, the following value calculator may update the following valuesuch that a difference between the following value and the target valuedecreases at the predetermined rate.

Further, the following value calculator may update the following valuesuch that the following value approaches the target value by a valueobtained by multiplying a difference between the following value and thetarget value by the predetermined rate.

Further, the predetermined input device may be a coordinate input devicewhich outputs input coordinate data indicating a contact position withrespect to an operation surface thereof. When output of the inputcoordinate data from the coordinate input device is interrupted duringan input operation of moving the contact position with contact with theoperation surface maintained, the interruption compensation periodsetter may determine that input continues, during a period whichincreases as a speed of the input operation increases.

Further, the interruption compensator may correct the input data in realtime.

A second configuration example is an information processing apparatusfor processing input data outputted from a predetermined input device.The information processing apparatus comprises: an interruptioncompensation period setter configured to set an interruptioncompensation period on the basis of a change amount of the input data;and an interruption compensator configured to determine that inputcontinues and correct the input data, during a period from a time whenoutput of the input data from the input device is interrupted to a timewhen the interruption compensation period elapses.

A third configuration example is an information processing system forprocessing input data outputted from a predetermined input device. Theinformation processing system comprises: an interruption compensationperiod setter configured to set an interruption compensation period onthe basis of a change amount of the input data; and an interruptioncompensator configured to determine that input continues and correct theinput data, during a period from a time when output of the input datafrom the input device is interrupted to a time when the interruptioncompensation period elapses.

A fourth configuration example is an information processing methodexecuted by a computer of an information processing system forprocessing input data outputted from a predetermined input device. Theinformation processing method comprises the steps of: setting aninterruption compensation period on the basis of a change amount of theinput data; and determining that input continues and correcting theinput data, during a period from a time when output of the input datafrom the input device is interrupted to a time when the interruptioncompensation period elapses.

According to the technology, it is possible to appropriately processinput data outputted from a predetermined input device.

These and other objects, features, aspects and advantages of thetechnology will become more apparent from the following detaileddescription of non-limiting example embodiments when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a non-limiting example of a coordinateprocessing system;

FIG. 2 is a diagram showing a non-limiting example of input coordinatesby a pen;

FIG. 3 is a diagram showing a non-limiting example of input coordinatesby a finger;

FIG. 4 is a diagram showing a non-limiting example of input coordinates;

FIG. 5 is a diagram showing a non-limiting example of allowancecoordinates which are set in accordance with input coordinates;

FIG. 6 is a diagram showing a non-limiting example of followingcoordinates which are set in accordance with the allowance coordinates;

FIG. 7 is a diagram showing a non-limiting example of allowancecoordinates and following coordinates when interruption of an inputcoordinate occurs;

FIG. 8 is a diagram showing a non-limiting example of input coordinatesby a finger and following coordinates corresponding to the inputcoordinates;

FIG. 9 is a diagram showing a non-limiting example of input coordinatesby a pen and following coordinates corresponding to the inputcoordinates;

FIG. 10 is a diagram showing a non-limiting example of speedcoordinates;

FIG. 11 is a diagram showing a non-limiting example of data stored in aRAM;

FIG. 12 is a non-limiting portion of a flowchart showing a flow ofcoordinate processing;

FIG. 13 is a non-limiting remaining portion of the flowchart showing theflow of the coordinate processing;

FIG. 14 is a diagram showing a non-limiting example of a method forcalculating an allowance radius;

FIG. 15 is a diagram showing a non-limiting example of a method fordetermining a zigzag shape;

FIG. 16 is a diagram showing a non-limiting example of a method forcalculating a following rate;

FIG. 17 is a diagram showing a non-limiting modification of a method forsetting a following coordinate;

FIG. 18 is a diagram showing a non-limiting modification of a method forcorrecting an input coordinate; and

FIG. 19 is a diagram showing a non-limiting example of a time until aninput operation is determined as being ended.

DETAILED DESCRIPTION OF NON-LIMITING EXAMPLE EMBODIMENTS

In FIG. 1, a coordinate processing system 10 includes a touch panel 12,an information processing apparatus 14, a display device 16, and anexternal storage unit 24.

The touch panel 12 periodically detects a contact position of a fingeror a pen with respect to an operation surface thereof and outputscoordinate data indicating the contact position, to the informationprocessing apparatus 14 in predetermined cycles. In the exemplaryembodiment, the touch panel 12 is a pressure-sensitive type.

The information processing apparatus 14 includes a processor 18, aninternal storage unit 20, and a main memory 22. In the internal storageunit 20, computer programs which are to be executed by the processor 18are stored. The internal storage unit 20 is typically a hard disk or aROM (Read Only Memory). The main memory 22 temporarily stores computerprograms and other data.

The display device 16 displays an image generated by the informationprocessing apparatus 14, on a screen thereof. The touch panel 12 may beprovided on the screen of the display device 16.

In the external storage unit 24, computer programs which are to beexecuted by the processor 18 are stored. The external storage unit 24 istypically a CD (Compact Disc), a DVD (Digital Versatile Disc), or asemiconductor memory.

It is noted that the configuration of the coordinate processing system10 shown in FIG. 1 is a merely example, and in another embodiment, acoordinate processing system may be, for example, a hand-held gameapparatus including a touch panel.

Next, an outline of coordinate processing executed in the coordinateprocessing system 10 will be described.

FIG. 2 shows a series of coordinates (input coordinates p1 to p18)detected by the touch panel 12 when an operator draws an arc on theoperation surface of the touch panel 12 with a pen. When the touch panel12 is operated with the pen as described above, almost no fluctuationand interruption of the input coordinate occur. Meanwhile, when theoperator draws a similar arc on the operation surface of the touch panel12 with a finger, fluctuation and interruption of the input coordinateoccur as shown in FIG. 3. This is mainly due to the contact area of thefinger with the operation surface being larger than that of the pen. Ingeneral, as a contact area with the operation surface at an inputoperation increases, fluctuation and interruption of the inputcoordinate is more likely to occur. This is because when the contactarea increases, fluctuation of a detected contact position is likely tooccur, and particularly in a pressure-sensitive type coordinate inputdevice, the pressure on the operation surface per unit area decreases asthe contact area increases, and thus it is likely to be erroneouslydetermined that there is no contact, even when there is actuallycontact.

The information processing apparatus 14 performs processing forcompensating for fluctuation and interruption of the input coordinatewhich are described above (coordinate correction processing).Specifically, the information processing apparatus 14 updates an“allowance coordinate” and a “following coordinate” in real time on thebasis of an input coordinate inputted via the touch panel 12, tocompensate for fluctuation and interruption of the input coordinatewhich are described above.

Hereinafter, a method for updating an allowance coordinate when inputcoordinates p1 to p6 are inputted as shown in FIG. 4 will be describedwith reference to FIG. 5.

When the initial input coordinate p1 is inputted, an allowancecoordinate r1 is set so as to have the same values as those of the inputcoordinate p1.

The allowance coordinate which is once set does not change while thedistance therefrom to the latest input coordinate is equal to or lessthan a predetermined distance (an “allowance radius” shown in FIG. 5).Meanwhile, when the distance to the latest input coordinate is largerthan the predetermined distance, the allowance coordinate changes so asto move toward the latest input coordinate such that the distance to thelatest input coordinate agrees with the predetermined distance. It isnoted that as described later, the allowance radius changes in responseto a “finger degree” (a variable indicating a degree of likelihood of afinger) and, for example, in the range of 0 to 30.

In other words, when the input coordinate p2 is inputted, since thedistance between the input coordinate p2 and the allowance coordinate r1is larger than the allowance radius, the allowance coordinate movestoward the input coordinate p2 such that the distance therefrom to theinput coordinate p2 agrees with the allowance radius. In this manner, anallowance coordinate r2 shown in FIG. 5 is set.

When the input coordinate p3 is inputted, since the distance between theinput coordinate p3 and the allowance coordinate r2 is larger than theallowance radius, the allowance coordinate moves toward the inputcoordinate p3 such that the distance therefrom to the input coordinatep3 agrees with the allowance radius. In this manner, an allowancecoordinate r3 shown in FIG. 5 is set.

After that, similarly, each time the input coordinates p4, p5, and p6are inputted, allowance coordinates r4, r5, and r6 are sequentially set.

As is obvious from FIG. 5, an input trajectory represented by theallowance coordinates r1 to r6 is smoother than an input trajectoryrepresented by the input coordinates p1 to p6, and fluctuation of thecoordinate is suppressed.

Next, a method for updating a following coordinate when inputcoordinates p1 to p6 are inputted as shown in FIG. 4 will be describedwith reference to FIG. 6.

When the initial input coordinate p1 is inputted, a following coordinatef1 is set so as to have the same values as those of the input coordinatep1 (i.e., the same values as those of the allowance coordinate r1).

The following coordinate which is once set is updated so as to movetoward the latest allowance coordinate by a predetermined rate (a“following rate” described later) of the distance therefrom to thelatest allowance coordinate. It is noted that as described later, thefollowing rate changes in response to the finger degree and, forexample, in the range of 40% to 100%.

In other words, when the position of an allowance coordinate r2 is set,the following coordinate moves toward the allowance coordinate r2 by thepredetermined rate (the following rate) of the distance between theallowance coordinate r2 and the following coordinate f1. In this manner,a following coordinate f2 shown in FIG. 6 is set.

When the position of an allowance coordinate r3 is set, the followingcoordinate moves toward the allowance coordinate r3 by the predeterminedrate (the following rate) of the distance between the allowancecoordinate r3 and the following coordinate f2. In this manner, afollowing coordinate 13 shown in FIG. 6 is set.

After that, similarly, each time allowance coordinates r4, r5, and r6are set, following coordinates f4, f5, and f6 are sequentially set.

As is obvious from FIG. 6, an input trajectory represented by thefollowing coordinates f1 to f6 is smoother than the input trajectoryrepresented by the allowance coordinates r1 to r6, and fluctuation ofthe coordinate is further suppressed.

It is noted that even when the input coordinate is temporarilyinterrupted, update of the allowance coordinate and the followingcoordinate is performed. A method for updating the allowance coordinateand the following coordinate when the input coordinate is temporarilyinterrupted will be described with reference to FIG. 7.

FIG. 7 is the same as FIG. 5 and FIG. 6 in that each time inputcoordinates p1, p2, p3, and p4 are inputted, allowance coordinates r1,r2, r3, and r4 and following coordinates f1, f2, f3, and f4 aresequentially set.

In the example of FIG. 7, at a timing when an input coordinate p5 is tobe inputted (hereinafter, referred to as timing t5), no input coordinateis inputted. Then, an input coordinate p6 is inputted. The allowancecoordinate and the following coordinate are updated in predeterminedcycles (e.g., in the same cycles as the cycles in which coordinate datais outputted from the touch panel 12), regardless of whether a validinput coordinate is inputted from the touch panel 12. Thus, at timing t5as well, the allowance coordinate and the following coordinate areupdated.

It is noted that in the exemplary embodiment, as described later, theallowance radius gradually decreases while no input coordinate isinputted (S22 in FIG. 12). Thus, at timing t5, the allowance coordinateslightly moves toward the latest input coordinate (i.e., the inputcoordinate p4) such that the distance therefrom to the input coordinatep4 agrees with the allowance radius which has slightly decreased. Inthis manner, an allowance coordinate r5 shown in FIG. 7 is set.

When the allowance coordinate r5 is set, the following coordinate movestoward the allowance coordinate r5 by the predetermined rate (thefollowing rate) of the distance between the allowance coordinate r5 andthe following coordinate f4. In this manner, a following coordinate f5shown in FIG. 7 is set.

As described above, even when the input coordinate p5 is not inputted,the allowance coordinate r5 and the following coordinate f5corresponding to the timing (timing t5) when the input coordinate p5 isto be inputted are set. Thus, even when the input coordinate istemporarily interrupted, interruption of the coordinate can becompensated for (i.e., a coordinate which is to be originally inputtedcan be complemented).

It is noted that in compensating for interruption of the coordinate, ithas to be recognized whether the input coordinate is temporarilyinterrupted or the operator intentionally separates the finger or thepen from the operation surface of the touch panel 12. As a method forrecognizing this, various methods are considered.

In the exemplary embodiment, during a period from the time when theinput coordinate is interrupted to the time when an “interruptioncompensation period” which is set on the basis of the moving speed ofthe input coordinate elapses, it is determined that the operatorcontinues an input operation, and coordinate complementation isperformed. Then, when the “interruption compensation period” elapses, itis determined that the operator has ended the input operation. In theexemplary embodiment, as shown in FIG. 19, the “interruptioncompensation period” increases as the moving speed of the inputcoordinate increases.

In general, when the operator quickly slides the finger or the pen onthe operation surface, the pressure on the operation surface is unstableas compared to that when the operator slowly slides the finger or thepen on the operation surface. Thus, interruption of the input coordinateis likely to occur. Therefore, in the exemplary embodiment, when theoperator quickly slides the finger or the pen on the operation surface,the period to the time when it is determined that the operator has endedthe input operation is long as compared to that when the operator slowlyslides the finger or the pen on the operation surface. Thus,interruption of the input coordinate can be effectively compensated for.Further, when the operator slowly slides the finger or the pen on theoperation surface, the period to the time when it is determined that theoperator has ended the input operation decreases. Thus, decrease ofresponsiveness can be suppressed. As a result, favorable operability isobtained for the operator.

As a result of updating the allowance coordinate and the followingcoordinate for the input coordinates p1 to p4, p6 to p10, and p13 to p18shown in FIG. 3 as described above, following coordinates f1 to f21shown in FIG. 8 are obtained. As shown in FIG. 8, the followingcoordinate f1 coincides with the input coordinate p1, and the finalfollowing coordinate f21 substantially coincides with the inputcoordinate p18. In addition, an input trajectory represented by thefollowing coordinates f1 to f21 is smoother than an input trajectoryrepresented by the input coordinates p1 to p4, p6 to p10, and p13 top18, and is closer to the original input trajectory. Moreover,complementation is performed with the following coordinates f5 and f11to f12 corresponding to periods when the input coordinate is temporarilyinterrupted. Thus, favorable operability is obtained for the operatorwho operates the touch panel 12 with the finger.

Meanwhile, when the allowance coordinate and the following coordinateare updated for the input coordinates p1 to p18 shown in FIG. 2 asdescribed above, following coordinates f1 to f21 shown in FIG. 9 areobtained. However, in this case, there is no fluctuation of the inputcoordinate, and thus an input trajectory represented by the inputcoordinates p1 to p18 indicates a more accurate input trajectory than aninput trajectory represented by the following coordinates f1 to f21does. Further, technology to reduce fluctuation of coordinate data has afundamental demerit that responsiveness to an operation of an operatordecreases, and thus, for example, the following coordinate f2corresponding to the input coordinate p2 shifts from the inputcoordinate p2. The same applies to the following coordinates f3 to f18.

Thus, in consideration of the demerit described above, when the operatoroperates the touch panel 12 with the pen as shown in FIG. 1, it ispreferred not to compensate for fluctuation of the input coordinaterather than to compensate for fluctuation of the input coordinate. Thus,in the exemplary embodiment, a degree of compensating for fluctuationand the input coordinate is changed depending on whether the operatoroperates the touch panel 12 with the finger or the pen.

Specifically, when it is determined that the operator operates the touchpanel 12 with the finger, the aforementioned allowance radius isincreased and the aforementioned following rate is decreased, and whenit is determined that the operator operates the touch panel 12 with thepen, the aforementioned allowance radius is decreased and theaforementioned following rate is increased. As the allowance radius isincreased, the responsiveness to variation of the contact positiondecreases. Thus, fluctuation of the coordinate is further suppressed.Similarly, as the following rate is decreased, the responsiveness tovariation of the contact position decreases. Thus, fluctuation of thecoordinate is further suppressed. Therefore, not only when the operatoroperates the touch panel 12 with the finger but also when the operatoroperates the touch panel 12 with the pen, favorable operability isobtained for the operator.

It is noted that when it is determined that the operator operates thetouch panel 12 with the pen, the allowance radius is set to 0 and thefollowing rate is set to 100%, whereby the following coordinatecompletely coincides with the input coordinate.

As a method for determining whether the operator operates the touchpanel 12 with the finger or the pen, various determination methods areconsidered. In the exemplary embodiment, whether the operator operatesthe touch panel 12 with the finger or the pen is not determined bymaking a choice between those two choices. For the determination, avariable (finger degree), which indicates a degree of likelihood of afinger and can be a value in the range of 0.0 to 1.0, is updated at alltimes in accordance with the shape of an input trajectory represented byinput coordinates or a continuous contact time or continuous non-contacttime indicated by input coordinates, and the allowance radius and thefollowing rate are changed in response to the finger degree.

Meanwhile, as described with reference to FIG. 7, while the inputcoordinate is interrupted, the allowance coordinate gradually movestoward the latest input coordinate (i.e., the input coordinate inputtedlast), and the following coordinate moves toward the allowancecoordinate. Thus, unless a new input coordinate is inputted, the movingspeed of the following coordinate (i.e., the moving amount per one time)gradually decreases. This appears in the following coordinates f10 tof12 and the following coordinates f18 to f21 in FIG. 8.

However, in reality, the operator does not decrease or increase themoving speed of the finger during the input operation shown in FIG. 2.Thus, the moving speed of the following coordinate diverges from themoving speed of the finger of the operator. For that reason, in theexemplary embodiment, a method is also provided in which the actualmoving amount (the moving amount per unit time) and the actual movingdirection of the finger of the operator are inferred, and at least whilethe input coordinate is interrupted, the input coordinate iscomplemented by using a vector (inference movement vector) which is seton the basis of the inferred moving amount (inference moving amount) andthe inferred moving direction (inference moving direction). Hereinafter,a coordinate which is set by using an inference movement vector asdescribed above is referred to as “speed coordinate”. It is thought thata speed coordinate more accurately reflects the actual speed of thefinger of the operator as compared to the following coordinate.

As described above, the inference movement vector is a vector which isset on the basis of an inference moving amount and an inference movingdirection. As is obvious from the above description, the followingcoordinate follows the input coordinate late, and thus the moving amountof the following coordinate has low correlation with the actual movingamount of the finger of the operator. Meanwhile, the moving direction ofthe input coordinate has low correlation with the actual movingdirection of the finger of the operator, due to fluctuation of the inputcoordinate. Thus, in the exemplary embodiment, an inference movingamount is calculated on the basis of the moving amount of the inputcoordinate, and an inference moving direction is calculated on the basisof the moving direction of the following coordinate. As a result, it isthought that an inference movement vector which is set on the basis ofthe inference moving amount and inference moving direction calculatedthus more accurately reflects the actual moving amount and movingdirection of the finger of the operator.

Hereinafter, a method for updating a speed coordinate when the inputcoordinates p1 to p4, p6 to p10, and p13 to p18 are inputted as shown inFIG. 3 will be described with reference to FIG. 10.

While input coordinates are inputted without interruption, the speedcoordinate is basically updated so as to coincide with the followingcoordinate. Thus, speed coordinates s8 to s10 coincide with followingcoordinates f8 to f10, respectively.

While the input coordinate is interrupted, the speed coordinate isupdated in accordance with an inference movement vector, independentlyof the following coordinate. In other words, at a timing when an inputcoordinate p11 is to be inputted, the speed coordinate moves inaccordance with the inference movement vector which is set at that time.In this manner, a speed coordinate s11 shown in FIG. 10 is set. Inaddition, at a timing when an input coordinate p12 is to be inputted,the speed coordinate moves in accordance with the inference movementvector which is set at that time. In this manner, a speed coordinate s12shown in FIG. 10 is set.

When input of the input coordinate is restarted, the speed coordinatesequentially moves toward the latest following coordinates, and finallycoincides with the following coordinate again.

As described above, it is thought that the speed coordinate moreaccurately reflects the actual moving amount and moving direction of thefinger of the operator particularly while the input coordinate isinterrupted, as compared to the input coordinate and the followingcoordinate. Therefore, for example, when certain processing is performedon the basis of both the moving speed and the moving direction of thefinger of the operator on the operation surface at a moment, morefavorable operability is obtained for the operator by referring to thespeed coordinate rather than by referring to the input coordinate andthe following coordinate.

Next, an operation of the information processing apparatus 14 whichexecutes the coordinate processing described above will be describedwith reference to FIGS. 11 to 13.

FIG. 11 shows an example of various data stored in the main memory 22 ofthe information processing apparatus 14 when the coordinate processingdescribed above is executed.

A coordinate processing program D10 is a computer program for causingthe processor 18 of the information processing apparatus 14 to executethe coordinate processing described above. The coordinate processingprogram D10 is read from the internal storage unit 20, the externalstorage unit 24, or the lke and loaded into the main memory 22.

An input coordinate D11 is data indicating an input coordinate outputtedfrom the touch panel 12, and is typically two-dimensional coordinatevalues representing a contact position on the operation surface of thetouch panel 12. In the exemplary embodiment, in the main memory 22, atleast four input coordinates including a latest input coordinateinputted via the touch panel 12, an input coordinate inputtedimmediately before the latest input coordinate, an input coordinateinputted immediately before the last two input coordinates, and an inputcoordinate inputted immediately before the last three input coordinates,are stored.

An input touch state D12 is data which is outputted from the touch panel12 and indicates whether the operation surface of the touch panel 12 isin a state of being touched (hereinafter, referred to as “touch-onstate” or merely as “ON”) or in a state of not being touched(hereinafter, referred to as “touch-off state” or merely as “OFF”). Itis noted that in a certain type of touch panel, when the inputcoordinate D11 is invalid coordinate values, it can be determined thatthe input touch state is the touch-off state.

An allowance coordinate D13, a following coordinate D14, and a speedcoordinate D15 are data indicating the aforementioned allowancecoordinate, following coordinate, and speed coordinate, respectively,and each are typically two-dimensional coordinate values generated inreal time on the basis of the input coordinate D11 inputted via thetouch panel 12.

A corrected touch state D16 is obtained by reflecting a result of theaforementioned interruption compensation in the input touch state D12.In other words, even when the input touch state D12 temporarily becomesthe touch-off state, the corrected touch state D16 is kept so as to bethe touch-on state, if it is determined that the input operation of theoperator is not interrupted (i.e., interruption of the input coordinateis temporary and touching of the operator on the operation surfaceactually continues).

An allowance radius D17 is a variable used for updating the allowancecoordinate D13 as described above. In the exemplary embodiment, theallowance radius D17 can be a value in the range of 0.0 to 30.0.

A following rate D18 is a variable for updating the following coordinateD14 as described above. In the exemplary embodiment, the following rateD18 can be a value in the range of 40% to 100%.

A finger degree D19 is a variable indicating a degree of likelihood of afinger as described above. In the exemplary embodiment, the fingerdegree D19 can be a value in the range of 0.0 to 1.0.

An inference moving amount D20 is an actual moving amount (a movingamount per unit time) of the finger of the operator, which is inferredon the basis of a moving amount of the input coordinate D11, asdescribed above.

An inference moving direction D21 is an actual moving direction of thefinger of the operator, which is inferred on the basis of a movingdirection of the following coordinate D14, as described above. Theinference moving direction D21 is typically represented as atwo-dimensional vector.

An inference movement vector D22 is a vector which is set on the basisof the inference moving amount D20 and the inference moving directionD21, and is typically a two-dimensional vector having a magnitudeindicated by the inference moving amount D20 and a direction indicatedby the inference moving direction D21.

An interruption compensation period D23 is a period during which, evenwhen the input coordinate is interrupted, it is determined that an inputoperation of the operator continues. After the input coordinate isinterrupted, when the interruption compensation period D23 ends withoutobtaining a new input coordinate, it is determined at that time that theinput operation of the operator has ended.

Next, a flow of the coordinate processing executed by the processor 18of the information processing apparatus 14 on the basis of thecoordinate processing program D10 will be described with reference toflowcharts of FIGS. 12 and 13.

When execution of the coordinate processing program D10 is started, theprocessor 18 performs initial setting at step S10 in FIG. 12. In theinitial setting, a process of setting each variable to an initial value,and the like are performed. For example, the finger degree D19 is set to0.0, the allowance radius D17 is set to 0.0, and the following rate D18is set to 100%.

At step S11, on the basis of a signal from the touch panel 12, theprocessor 18 determines whether the input touch state D12 is ON (in thetouch-on state). Then, when the input touch state D12 is ON, theprocessing proceeds to step S12. When the input touch state D12 is notON, the processing proceeds to step S22.

At step S12, on the basis of a signal from the touch panel 12, theprocessor 18 obtains the input coordinate D11.

At step S13, the processor 18 updates the allowance radius D17 inaccordance with the finger degree D19. Specifically, as the fingerdegree D19 increases (i.e., as the degree of likelihood of a fingerincreases), the processor 18 increases the allowance radius D17. Forexample, the processor 18 calculates the allowance radius D17 from thefinger degree D19 by using a function shown in FIG. 14.

At step S14, the processor 18 decreases the finger degree D19. Forexample, the processor 18 multiplies the finger degree D19 by 0.98.

At step S15, the processor 18 determines whether the touch-off state hasended in a short time. Specifically, for example, the processor 18counts the number of continuous times of the touch-off state of theinput touch state D12 (i.e., a continuous non-contact time), anddetermines that the touch-off state has ended in a short time, if thenumber of continuous times is equal to or less than a predeterminednumber (e.g., 2) at the time when the input touch state D12 changes fromthe touch-off state to the touch-on state.

A situation where the touch-off state has ended in a short time asdescribed above does not occur during a normal and appropriate inputoperation, and if such a situation occurs, there is the possibility thattemporary interruption of the input coordinate has occurred due to anoperation with the finger on the touch panel 12.

When it is determined that the touch-off state has ended in a shorttime, the processing proceeds to step S16. When it is not determinedthat the touch-off state has ended in a short time, the processingproceeds to step S17.

At step S16, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19.

At step S17, the processor 18 determines whether or not the touch-onstate is continuing two consecutive times or more. Specifically, forexample, the processor 18 counts the number of continuous times of thetouch-on state of the input touch state D12 (i.e., a continuous contacttime), and determines whether the number of continuous times is equal toor more than 2. When it is determined that the touch-on state iscontinuing two consecutive times or more, the processing proceeds tostep S18. When it is not determined that the touch-on state iscontinuing two consecutive times or more, the processing proceeds tostep S25.

At step S18, the processor 18 updates the inference moving amount D20and the interruption compensation period D23 on the basis of the latestinput coordinate and the input coordinate immediately previous to thelatest input coordinate. Specifically, for example, where the inferencemoving amount D20 before update is A; and the inference moving amountD20 after update is A′; and the distance between the latest inputcoordinate and the immediately previous input coordinate is B, it issatisfied that A′=A+(B−A)×C. C is a predetermined coefficient (e.g.,0.2). As shown in FIG. 19, the interruption compensation period D23increases as the moving speed of the input coordinate increases. As amethod for calculating the moving speed of the input coordinate, variouscalculation methods are considered. In the exemplary embodiment, as anexample, the value of the inference moving amount D20 is used as themoving speed of the input coordinate. Thus, the interruptioncompensation period D23 increases as the value of the inference movingamount D20 increases. In another example, the distance between thelatest input coordinate and the input coordinate immediately previous tothe latest input coordinate may be used as the moving speed of the inputcoordinate.

At step S19, the processor 18 determines whether the touch-on state iscontinuing four consecutive times or more. Specifically, for example,the processor 18 counts the number of continuous times of the touch-onstate of the input touch state D12 (i.e., a continuous contact time),and determines whether the number of continuous times is equal to ormore than 4. When it is determined that the touch-on state is continuingfour consecutive times or more, the processing proceeds to step S20.When it is not determined that the touch-on state is continuing fourconsecutive times or more, the processing proceeds to step S30 in FIG.13.

At step S20, the processor 18 determines whether the shape representedby the input coordinate D11 is a zigzag shape. Specifically, forexample, the processor 18 determines whether or not the shape of aninput trajectory represented by the last four input coordinates is azigzag shape. For example, in FIG. 15, when an input coordinate pa, aninput coordinate pb, an input coordinate pc, and an input coordinate pdare inputted in order, the processor 18 calculates an inner product of:a unit vector which is a vector Vad connecting the input coordinate pato the input coordinate pd; and a unit vector which is a vector Vbcconnecting the input coordinate pb to the input coordinate pc. Then,when the inner product is less than a predetermined value (e.g., 0.8),namely, when the angle formed between the line segment connecting theinput coordinate pa to the input coordinate pd and the line segmentconnecting the input coordinate pb to the input coordinate pc is morethan a predetermined angle, the processor 18 determines that the shapeof the input trajectory represented by these four input coordinates pato pd is a zigzag shape.

During a normal and appropriate input operation, the shape of the inputtrajectory represented by the last four input coordinates hardly becomesa zigzag shape. Thus, there is a high possibility that such a zigzagshape is caused by fluctuation of the input coordinate which occurs dueto an operation with the finger on the touch panel 12.

In order to prevent an input trajectory from being determined as azigzag shape by slight variation of a contact position in a state whenthe contact position almost does not move, for example, it may bedetermined that the input trajectory is not a zigzag shape, when themagnitude of at least either one of the vector Vad or the vector Vbc isequal to or less than a predetermined threshold.

When it is determined that the shape represented by the input coordinateD11 is a zigzag shape, the processing proceeds to step S21. When it isnot determined that the shape represented by the input coordinate D11 isa zigzag shape, the processing proceeds to step S30 in FIG. 13.

At step S21, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19. Then, the processingproceeds to step S30 in FIG. 13.

At step S22, the processor 18 decreases the allowance radius D17. Forexample, the processor 18 subtracts 3.0 from the allowance radius D17.

At step S23, the processor 18 determines whether the touch-on state hasended in a short time. Specifically, for example, the processor 18counts the number of continuous times of the touch-on state of the inputtouch state D12 (i.e., a continuous contact time), and determines thatthe touch-off state has ended in a short time, if the number ofcontinuous times is equal to or less than a predetermined number (e.g.,2) at the time when the input touch state D12 changes from the touch-onstate to the touch-off state.

A situation where the touch-on state has ended in a short time asdescribed above does not occur during a normal and appropriate inputoperation, and if such a situation occurs, there is the possibility thattemporary interruption of the input coordinate has occurred due to anoperation with the finger on the touch panel 12.

When it is determined that the touch-on state has ended in a short time,the processing proceeds to step S24. When it is not determined that thetouch-on state has ended in a short time, the processing proceeds tostep S25.

At step S24, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19.

At step S25, the processor 18 decreases the inference moving amount D20.Specifically, for example, the processor 18 multiplies the inferencemoving amount D20 by 0.98. Then, the processing proceeds to step S30 inFIG. 13.

At step S30 in FIG. 13, the processor 18 updates the following rate D18in accordance with the finger degree D19. Specifically, as the fingerdegree D19 increases (i.e., the degree of likelihood of a fingerincreases), the processing 18 decreases the following rate D18. Forexample, the processor 18 calculates the following rate D18 from thefinger degree D19 by using a function shown in FIG. 16.

At step S31, the processor 18 determines whether the corrected touchstate D16 is OFF (in the touch-off state) and the input touch state D12is ON (in the touch-on state). A situation where the corrected touchstate D16 is OFF and the input touch state D12 is ON means that theoperator initially contacts the operation surface with the finger or thepen, or that after intentionally separating the finger or the pen fromthe operation surface, the operator contacts the operation surface withthe finger or the pen again in order to make a new input. When a resultof the determination at step S31 is positive, the processing proceeds tostep S32. When the result of the determination at step S31 is negative,the processing proceeds to step S34.

At step S32, the processor 18 updates the allowance coordinate D13, thefollowing coordinate D14, and the speed coordinate D15 to the samecoordinate as the latest input coordinate D11.

At step S33, the processor 18 initializes the inference moving amountD20, the inference moving direction D21, the inference movement vectorD22, and the interruption compensation period D23. Specifically, theprocessor 18 initializes the inference moving amount D20 and theinterruption compensation period D23 to be 0, and initializes theinference moving direction D21 and the inference movement vector D22 tobe zero vectors.

At step S34, the processor 18 updates the allowance coordinate D13 inaccordance with the allowance radius D17. Specifically, when thedistance between the latest input coordinate and the allowancecoordinate D13 is larger than the allowance radius D17, the processor 18changes the allowance coordinate D13 so as to move the allowancecoordinate D13 toward the latest input coordinate such that the distancebetween the latest input coordinate and the allowance coordinate D13agrees with the allowance radius D17. It is noted that when the distancebetween the latest input coordinate and the allowance coordinate D13 isequal to or smaller than the allowance radius D17, the processor 18 doesnot change the values of the allowance coordinate D13.

At step S35, the processor 18 updates the following coordinate D14 inaccordance with the following rate D18. Specifically, the processor 18updates the following coordinate D14 such that the following coordinateD14 moves toward the allowance coordinate D13 by a distance obtained bymultiplying, by the following rate D18, the distance between thefollowing coordinate D14 and the allowance coordinate D13 updated atstep S34.

At step S36, the processor 18 updates the inference moving direction D21on the basis of the latest following coordinate and the followingcoordinate immediately previous to the latest following coordinate.Specifically, for example, where the inference moving direction D21before update is V; the inference moving direction D21 after update isV′; and a vector connecting the latest following coordinate to theimmediately previous following coordinate is v, it is satisfied thatV′=V+(v−V)×D. D is a predetermined constant (e.g., 0.3).

At step S37, the processor 18 determines whether the input touch stateD12 is ON. Then, when the input touch state D12 is ON, the processingproceeds to step S39. When the input touch state D12 is not ON, theprocessing proceeds to step S38.

At step S38, the processor 18 determines whether the interruptioncompensation period D23 has elapsed after the input coordinate isinterrupted (i.e., after the input touch state D12 becomes the touch-offstate). Specifically, for example, the processor 18 counts the number ofcontinuous times of the touch-off state of the input touch state D12(i.e., a continuous non-contact time), and determines whether theinterruption compensation period D23 has elapsed, by comparing thenumber of continuous times to the interruption compensation period D23.When it is determined that the interruption compensation period D23 haselapsed, the processing proceeds to step S41. When it is not determinedthat the interruption compensation period D23 has elapsed, theprocessing proceeds to step S39.

At step S39, the processor 18 updates the corrected touch state D16 tobe ON (in the touch-on state). By so doing, even when the input touchstate D12 is OFF, until the interruption compensation period D23elapses, it is determined that the input operation of the operator isnot interrupted (i.e., interruption of the input coordinate is temporaryand touching of the operator on the operation surface actuallycontinues).

At step S40, the processor 18 updates the inference movement vector D22on the basis of the inference moving amount D20 and the inference movingdirection D21.

At step S41, the processor 18 updates the corrected touch state D16 tobe OFF (in the touch-on state).

At step S42, the processor 18 determines whether the input touch stateD12 is ON. Then, when the input touch state D12 is ON, the processingproceeds to step S43. When the input touch state D12 is not ON, theprocessing proceeds to step S44.

At step S43, the processor 18 updates the speed coordinate D15 inaccordance with the latest following coordinate D14. Specifically, forexample, the processor 18 counts the number of continuous times of thetouch-on state of the input touch state D12. Where the number ofcontinuous times is N (note that the upper limit is 10); the latestfollowing coordinate D14 is F; the speed coordinate D15 before update isS; and the speed coordinate D15 after update is S′, it is satisfied thatS′=S+(F−S)×N/10. In other words, when the number of continuous times ofthe touch-on state is 0 to 9, the speed coordinate D15 approaches thefollowing coordinate D14 so as to coincide with the following coordinateD14, and when the number of continuous times of the touch-on state is 10or more, the speed coordinate D15 always coincides with the followingcoordinate D14.

At step S44, the processor 18 updates the speed coordinate D15 inaccordance with the inference movement vector D22. Specifically, theprocessor 18 updates the speed coordinate D15 such that the speedcoordinate D15 moves in the moving direction indicated by the inferencemovement vector D22 and by the moving amount indicated by the inferencemovement vector D22.

When the process at step S43 or step S44 ends, the processing returns tostep S11 in FIG. 12, and the processing described above is repeated inpredetermined cycles (e.g., in the same cycles as the cycles in whichcoordinate data is outputted from the touch panel 12).

As described above, the following coordinate D14 and the speedcoordinate D15, which are updated in real time in accordance with theinput coordinate data outputted from the touch panel 12, can be used foroptional purposes as coordinates (corrected coordinates) resulting fromcompensation of fluctuation and interruption of the input coordinate. Itis noted that only either one of the following coordinate D14 or thespeed coordinate D15 may be used depending on a purpose. The followingcoordinate D14 tends to more accurately reflect the shape of atrajectory drawn by the operator as compared to the speed coordinateD15, and thus is suitable for, for example, a purpose of displaying theshape of a trajectory drawn by the operator on the screen of the displaydevice 16. Meanwhile, the speed coordinate D15 tends to more accuratelyreflect a moving direction and a moving speed of the finger or the penas compared to the following coordinate D14, and thus is suitable, forexample, for a purpose of moving an object displayed on the screen ofthe display device 16, such as a character, an icon, or a window, inaccordance with a moving direction and a moving speed of the finger orthe pen.

Similarly to the following coordinate D14 and the speed coordinate D15,other data (such as the allowance coordinate D13, the corrected touchstate D16, the finger degree D19, and the inference movement vectorD22), which is updated in real time in accordance with the inputcoordinate data outputted from the touch panel 12, can also be used foroptional purposes. For example, when the touch panel 12 is provided onthe screen of the display device 16, the size of an icon, a menu button,a hand-writing input box, or the like displayed on the screen may bechanged in response to the finger degree D19. For example, by increasingtheir sizes as the finger degree D19 increases, when an operation isperformed with the finger, the operability improves, and when anoperation is performed with the pen, an amount of information which canbe displayed on the screen is increased and the limited display area canbe effectively used. In addition, similarly to the speed coordinate D15,the inference movement vector D22 is suitable for a purpose of moving anobject displayed on the screen of the display device 16, such as acharacter, an icon, or a window, in accordance with a moving directionand a moving speed of the finger or the pen.

The exemplary embodiment described above is merely one embodiment, andvarious modifications are considered.

For example, in the exemplary embodiment described above, the followingcoordinate D14 is updated so as to follow the allowance coordinate D13as a target coordinate. However, in another embodiment, as shown in FIG.17, the following coordinate D14 may be updated so as to follow theinput coordinate D11 as a target coordinate, without using the allowancecoordinate D13. In this case as well, in FIG. 17, an input trajectoryrepresented by following coordinates f1 to f6 is smoother than the inputtrajectory represented by input coordinates p1 to p6, and fluctuation ofthe coordinate is suppressed.

Further, in the exemplary embodiment described above, fluctuation of thecoordinate is compensated for by using the following coordinate D14.However, in another embodiment, fluctuation of the coordinate may becompensated for by using only the allowance coordinate D13, or by usinganother compensation method. For example, as shown in FIG. 18,fluctuation of the coordinate may be compensated for by using an averagecoordinate obtained by averaging the last three input coordinates. Forexample, in FIG. 18, an average coordinate a3 is a coordinate obtainedby averaging input coordinates p1 to p3, and an average coordinate a4 isa coordinate obtained by averaging the input coordinates p2 to p4. Inthis case, by changing the number of input coordinates which are to beaveraged, a degree of compensating for fluctuation of the coordinate(i.e., responsiveness to variation of a contact position) can bechanged. Thus, for example, by setting the number of input coordinates,which are to be averaged, to 1 when the finger degree D19 is 0, andincreasing the number of input coordinates, which are to be averaged, asthe finger degree D19 increases, an effect similar to that in theexemplary embodiment described above is obtained.

Further, in the exemplary embodiment described above, the following rateD18 is changed in response to the finger degree 019. However, in anotherembodiment, the following rate D18 may be a constant.

Further, in the exemplary embodiment described above, the allowanceradius D17 is changed in response to the finger degree D19. However, inanother embodiment, the allowance radius D17 may be a constant.

Further, in the exemplary embodiment described above, the degree ofcorrecting a coordinate is adjusted by using the finger degree D19.However, in another embodiment, whether the operator performs anoperation with the finger or the pen may be determined by making achoice between these two choices, and the degree of correcting acoordinate may be changed between two levels in accordance with a resultof the determination. For example, when it is determined that theoperator performs an operation with the finger, coordinate correctionmay be performed, and when the operator performs an operation with thepen, coordinate correction may not be performed.

Further, in the exemplary embodiment described above, the finger degreeD19 is updated on the basis of the shape of the input trajectoryrepresented by the input coordinates, the continuous contact time, andthe continuous non-contact time, but the method for updating the fingerdegree D19 is not limited thereto. For example, when a touch panel whichis capable of detecting a contact area with an operation surface thereofis used, the finger degree D19 may be updated in real time in accordancewith the detected contact area. For example, as the detected contactarea increases, the finger degree D19 may be increased.

Further, in the exemplary embodiment described above, whether theoperator performs an operation with the finger or the pen is determinedon the basis of the characteristic of the input coordinate dataoutputted from the touch panel 12. However, in another embodiment, theoperator may previously designate whether to perform an operation withthe finger or the pen, by using any input device. Then, the degree ofcorrecting a coordinate may be changed between two levels when anoperation with the finger is designated and when an operation with thepen is designated.

Further, instead of the coordinate processing system 10 shown in FIG. 1,an information processing apparatus including the touch panel 12, suchas a hand-held game apparatus, thin client, portable computer, ormonitor including a touch panel, may be used.

Further, instead of the pressure-sensitive type touch panel 12, anothertype of touch panel (a capacitance type touch panel) may be used.However, for example, in a capacitance type touch panel, fluctuation andinterruption of the input coordinate which occur when an operation isperformed with the finger do not remarkably appear as in apressure-sensitive type touch panel. When a capacitance type touch panelis used, whether the operator performs an operation with the finger orthe pen may be determined on the basis of a contact area with anoperation surface.

Further, instead of the touch panel 12, any coordinate input devicehaving the same function as that of a touch panel, such as a touch pad,(i.e., a coordinate input device which is capable of detecting a contactposition of a finger or a pen with respect to an operation surfacethereof) may be used. In addition, other than the coordinate inputdevice, an input device which inputs any other input value may be used.For example, an input device which includes an acceleration sensor andoutputs input data indicating acceleration corresponding to an operationof the operator may be used. In this case as well, similarly to theexemplary embodiment described above, for example, it is possible tocompensate for fluctuation and input data by using a following valuewhich follows an input value indicated by the input data. In addition,similarly to the exemplary embodiment described above, it is possible toappropriately compensate for interruption of input data by using theinterruption compensation period which changes in response to a changeamount of input data.

Further, in the exemplary embodiment described above, a plurality of theprocesses shown in FIGS. 12 and 13 is executed by a single computer (theprocessor 18). However, in another embodiment, a plurality of computersmay share the execution of these processes. In still another embodiment,some or all of these processes may be realized by a dedicated circuit.

Further, in the exemplary embodiment described above, a plurality of theprocesses shown in FIGS. 12 and 13 is executed in the single informationprocessing apparatus 14. However, in another embodiment, a plurality ofinformation processing apparatuses may share the execution of theseprocesses.

Further, in the exemplary embodiment described above, the coordinateprocessing program D10 is loaded from the internal storage unit 20 orthe external storage unit 24 into the main memory 22. However, inanother embodiment, the coordinate processing program D10 may besupplied from another information processing apparatus (e.g., a server)to the information processing apparatus 14.

While the technology has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It willbe understood that numerous other modifications and variations can bedevised without departing from the scope of the technology.

What is claimed is:
 1. A computer-readable storage medium having storedtherein an information processing program for processing input dataoutputted from a predetermined input device, the information processingprogram causing a computer to operate as: an interruption compensationperiod setter configured to set an interruption compensation period onthe basis of a change amount of the input data; and an interruptioncompensator configured to determine that input continues and correct theinput data, during a period from a time when output of the input datafrom the input device is interrupted to a time when the interruptioncompensation period elapses.
 2. The computer-readable storage mediumaccording to claim 1, wherein the interruption compensation period whichis set by the interruption compensation period setter increases as achange amount of the input data immediately before the output of theinput data from the input device is interrupted increases.
 3. Thecomputer-readable storage medium according to claim 1, wherein theinformation processing program further causes the computer to operate asa change speed calculator configured to calculate a change speed of theinput data, and the interruption compensation period setter sets theinterruption compensation period on the basis of the change speed of theinput data calculated by the change speed calculator.
 4. Thecomputer-readable storage medium according to claim 3, wherein thechange speed calculator calculates the change speed of the input data onthe basis of at least a difference between latest input data and inputdata immediately previous to the latest input data.
 5. Thecomputer-readable storage medium according to claim 1, wherein thepredetermined input device is a coordinate input device, the input datais input coordinate data indicating a contact position with respect toan operation surface of the coordinate input device, and during a periodfrom a time when the contact position indicated by the input coordinatedata is interrupted to a time when the interruption compensation periodelapses, the interruption compensator determines that contact continues,and corrects the input coordinate data.
 6. The computer-readable storagemedium according to claim 1, wherein the information processing programfurther causes the computer to operate as a following value calculatorconfigured to calculate a following value which follows a target valuewhich is set on the basis of the input data, and when the output of theinput data is interrupted, the interruption compensator complementsinput data for a period when the output of the input data isinterrupted, by using the following value.
 7. The computer-readablestorage medium according to claim 5, wherein the information processingprogram further causes the computer to operate as a following coordinatecalculator configured to calculate a following calculator which followsa target calculator which is set on the basis of the input data, andwhen the contact position indicated by the input coordinate data isinterrupted, the interruption compensator complements a contact positionfor a period when the contact position indicated by the input coordinatedata is interrupted, on the basis of an interval of the contact positionindicated by the input coordinate data and a moving direction of thefollowing coordinate.
 8. The computer-readable storage medium accordingto claim 6, wherein the following value calculator calculates thefollowing value such that the following value follows the target valueat a predetermined rate.
 9. The computer-readable storage mediumaccording to claim 8, wherein the following value calculator updates thefollowing value such that a difference between the following value andthe target value decreases at the predetermined rate.
 10. Thecomputer-readable storage medium according to claim 8, wherein thefollowing value calculator updates the following value such that thefollowing value approaches the target value by a value obtained bymultiplying a difference between the following value and the targetvalue by the predetermined rate.
 11. The computer-readable storagemedium according to claim 1, wherein the predetermined input device is acoordinate input device which outputs input coordinate data indicating acontact position with respect to an operation surface thereof, and whenoutput of the input coordinate data from the coordinate input device isinterrupted during an input operation of moving the contact positionwith contact with the operation surface maintained, the interruptioncompensation period setter determines that input continues, during aperiod which increases as a speed of the input operation increases. 12.The computer-readable storage medium according to claim 1, wherein theinterruption compensator corrects the input data in real time.
 13. Aninformation processing apparatus for processing input data outputtedfrom a predetermined input device, the information processing apparatuscomprising: an interruption compensation period setter configured to setan interruption compensation period on the basis of a change amount ofthe input data; and an interruption compensator configured to determinethat input continues and correct the input data, during a period from atime when output of the input data from the input device is interruptedto a time when the interruption compensation period elapses.
 14. Aninformation processing system for processing input data outputted from apredetermined input device, the information processing systemcomprising: an interruption compensation period setter configured to setan interruption compensation period on the basis of a change amount ofthe input data; and an interruption compensator configured to determinethat input continues and correct the input data, during a period from atime when output of the input data from the input device is interruptedto a time when the interruption compensation period elapses.
 15. Aninformation processing method executed by a computer of an informationprocessing system for processing input data outputted from apredetermined input device, the information processing method comprisingthe steps of: setting an interruption compensation period on the basisof a change amount of the input data; and determining that inputcontinues and correcting the input data, during a period from a timewhen output of the input data from the input device is interrupted to atime when the interruption compensation period elapses.